<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
class IntegralController extends Controller
{
    /**
     * getIndex() 显示积分商品主页列表
     * 
     * @param   $count  int     分页显示的条数
     * @param   $search string  搜索匹配的关键字
     * @param   $data   array   搜索分页并且查询
     * @return  返回后台积分商品列表首页
     */
    public function getIndex(Request $request){
        // 查询数据并且分页
        $count = $request -> input('count', 8);
        $search = $request -> input('search', '');
        // dd($count);
        $data = DB::table('user_integral') ->where('integral_name','like','%'.$search.'%') ->paginate($count);
        return view('admin.integral.index',['data'=>$data,'request'=>$request->all()]);
    }
    /**
     * getAdd() 添加积分商品页面
     * 
     * @param   
     * @param   
     * @param   
     * @return  返回后台积分商品添加页面
     */
    public function getAdd(){
        return view('admin.integral.add');
    }
    /**
     * postInsert() 执行添加积分商品页面
     * 
     * @param   $photo_name  string  积分商品图片的名字
     * @param   $arr         array   压入数据库的数据
     * @param   $res         bool    sql语句返回值
     * @return  跳转后台积分商品主页路由
     */
    public function postInsert(Request $request){       
        // 检测上传图片
        if($request -> hasFile('integral_pic')){
            $file= $request -> file('integral_pic');
             // 获取文件后缀名
            $hz = $file -> getClientOriginalExtension();
            // 检测图片格式
            $array = ['jpg','png','gif'];
            if(!in_array($hz,$array,true)){
                return back() -> with('error','图片格式不符合要求');
            }     
            // 随机后缀名,并拼接文件后缀名
            $photo_name = md5(time().rand(100000,999999)).'.'.$hz;
            // 将文件上传至指定位置
            $request -> file('integral_pic') -> move('./web/images',$photo_name);
            // 拼接插入数据
            $arr = $request -> only(['integral_name','integral_status','integral_description','integral_price','integral_amount']);
            $arr['integral_createtime'] = date('Y-m-d H:i:s',time());  
            $arr['integral_pic'] = $photo_name;
            $res = DB::table('user_integral') -> insert($arr);
            if($res){
                return redirect('/admin/integral/index')->with('success','添加成功');
            }else{
                return back() -> with('error','添加失败');
            }
            

        }else{
            return back() -> with('error','请上传图片');
        }   
    }
    /**
     * getEdit() 积分商品后台编辑页面
     * 
     * @param   $data  array  指定修改的那一条数据
     * @param   
     * @param   
     * @return  返回后台积分商品编辑页面视图
     */
    public function getEdit($id){
        $data = DB::table('user_integral') ->where('id',$id) ->first();
        return view('admin.integral.edit',['data'=>$data]);
    }
    /**
     * postDoedit() 执行编辑积分商品页面
     * 
     * @param   $photo_name  string  积分商品图片的名字
     * @param   $arr         array   压入数据库的数据
     * @param   $res1         bool    sql语句返回值
     * @return  跳转后台积分商品主页路由
     */
    public function postDoedit(Request $request){
        $arr = $request -> only(['integral_name','integral_status','integral_description','integral_price','integral_amount']);
        $arr['integral_createtime'] = date('Y-m-d H:i:s',time()); 
        $id = $request ->input('id');
        // 检测上传图片
        if($request -> hasFile('integral_pic')){
            $file= $request -> file('integral_pic');
             // 获取文件后缀名
            $hz = $file -> getClientOriginalExtension();
            // 检测图片格式
            $array = ['jpg','png','gif'];
            if(!in_array($hz,$array,true)){
                return back() -> with('error','图片格式不符合要求');
            }     
            // 随机后缀名,并拼接文件后缀名
            $photo_name = md5(time().rand(100000,999999)).'.'.$hz;
            // 将文件上传至指定位置
            $request -> file('integral_pic') -> move('./web/images',$photo_name);          
            $arr['integral_pic'] = $photo_name;            
            $res = DB::table('user_integral') ->where('id',$id) ->update($arr);
            if($res){
                return redirect('/admin/integral/index')->with('success','修改成功');
            }else{
                return back() -> with('error','修改失败1');
            }
            

        }else{
            $data = DB::table('user_integral') ->where('id',$id) ->first();
            $arr['integral_pic'] = $data['integral_pic'];
            $res1 = DB::table('user_integral') ->where('id',$id) ->update($arr);
            if($res1){
                return redirect('/admin/integral/index')->with('success','修改成功');
            }else{
                return back() -> with('error','修改失败2');
            }
        }   
    }

    /**
     * getDelete()积分商品后台删除方法
     * 
     * @param   $data  array  指定修改的那一条数据
     * @param   
     * @param   
     * @return  跳转后台积分商品主页路由
     */
    public function getDelete($id){
        $res = DB::table('user_integral') ->where('id',$id) ->delete();
        if($res){
            return redirect('/admin/integral/index')->with('success','删除成功');
        }else{
            return back() -> with('error','删除失败');
        }
    }
    /**
     * postDelall()积分商品后台多项删除方法
     * 
     * @param   $data  array  指定修改的那一条数据
     * @param   
     * @param   
     * @return  跳转后台积分商品主页路由
     */
    public function postDelall(Request $request){
        $arr = $request -> only('id')['id'];
        $res = DB::table('user_integral') ->whereIn('id',$arr) ->delete();
        if($res){
            return redirect('/admin/integral/index')->with('success','删除成功');
        }else{
            return back() -> with('error','删除失败');
        }
    }
}
